<!DOCTYPE html>
<html>
<head>
	<title></title>
	<link rel="stylesheet" type="text/css" href="../公用CSS文件/all.css" />
	<script type="text/javascript" src="../js/jquery.min.js"></script> 	<script type="text/javascript" src="../js/js.js"></script>
	<meta charset="utf-8">
	<style type="text/css">
		table{min-width:80%}
	</style>
</head>
<body>
<div class="dt">数字函数</div>
<ul>
	<div class="ltable showimg">数学运算类</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>pow</td><td>求幂运算</td><td>base基数  exp指数</td><td>返回基数的指数次幂</td>
			</tr>
			<tr>
				<td>round</td>
				<td>对浮点数进行四舍五入</td>
				<td>任意类型数据  精度</td>
				<td>float整数</td>
			</tr>
			<tr>
				<td>abs</td>
				<td>取绝对值</td>
				<td>数值数据</td>
				<td>int或float</td>
			</tr>
			<tr>
				<td>bcadd</td>
				<td>求和数(加法运算)</td>
				<td>加数  加数  【精度=0】</td>
				<td>和</td>
			</tr>
			<tr>
				<td>bcsub</td>
				<td>求差数(减法计算)</td>
				<td>被减数 减数 【精度=0】</td>
				<td>差</td>
			</tr>
			<tr>
				<td>bcmul</td>
				<td>求积数(乘法运算)</td>
				<td>因数  因数 【精度=0】</td>
				<td>积数</td>
			</tr>
			<tr>
				<td>bcdiv</td>
				<td>求商数(除法运算)</td>
				<td>被除数  除数 【精度=0】</td>
				<td>商</td>
			</tr>
			<tr>
				<td>fmod</td>
				<td>求余数</td>
				<td>被除数  除数  【精度=0】</td>
				<td>余数,包含浮点数</td>
			</tr>
			<tr>
				<td>ceil</td>
				<td>向上取整(精准详细的描述为大于等于该数的最小整数)</td>
				<td>数值数据</td>
				<td>int整数</td>
			</tr>
			<tr>
				<td>floor</td>
				<td>向下取整(精准详细的描述为小于于等于该数的最大整数)</td>
				<td>数值数据</td>
				<td>int整数</td>
			</tr>
			<tr>
				<td>max</td>
				<td>求最大值</td>
				<td>value值 【value...】</td>
				<td>数值最大的值</td>
			</tr>
			<tr>
				<td>min</td>
				<td>求最小值</td>
				<td>value值 【value...】</td>
				<td>数值最小的值</td>
			</tr>
		</table>
		<li>max和min函数如果对比的值中含有int、float时会比较数值大小，否则会比较ascii码值大小，含复合数据类型时永远复合数据最大，对象会大于数值，各比较的值也可以放到单一数组中</li>
		<li>数值运算类的函数会隐藏地进行一次数值转化，比如round函数会隐藏的先转化参数为float，但是round函数其实返回的是float类型的整数</li>
		<li>bc系列四则运算，会将运算结果超出精度外的值舍弃而不是四舍五入，并且返回字符串而不是数字(尽管在实际使用中几乎没什么区别)</li>
	</div>

	<div class="ltable showimg">数字判断类</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>is_int</td>
				<td>判断是否是int类数据</td>
				<td>任意数据类型数据</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>is_float</td>
				<td>判断是否是float类型数据(整数不是)</td>
				<td>任意数据类型数据</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>is_numeric</td>
				<td>判断是否是数值，可以是int、float或纯数字字符串</td>
				<td>任意数据类型数据</td>
				<td>布尔值</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">其他数字函数</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>rand</td>
				<td>生成随机整数(包含边界值)</td>
				<td>【min最小=0  max最大=getrandmax()】</td>
				<td>int</td>
			</tr>
			<tr>
				<td>mt_rand</td>
				<td>生成随机整数</td>
				<td>【min最小=0  max最大=mt_getrandmax()】</td>
				<td>int</td>
			</tr>
		</table>
	</div>
</ul>

<div class="dt">时间日期函数</div>
<ul>
	<div class="ltable showimg">时间格式转化类</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>strtotime</td>
				<td>将格式时间转为时间戳</td>
				<td>str时间说明 【int参考时间戳】</td>
				<td>int时间戳</td>
			</tr>
			<tr>
				<td>date</td>
				<td>返回时间戳的格式时间</td>
				<td>str格式参考字符 【时间戳】</td>
				<td>格式时间日期字符串</td>
			</tr>
		</table>
		<li>strtotime通常接受时间描述"-1 day"或格式时间字符串之类的参数，但其实其有效参数格式很广泛，比如还可接受today、yesterday等英文描述</li>
	</div>

	<div class="ltable showimg">其他时间函数</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>date_create</td>
				<td>创建时间对象，间接调用dateTime对象的构造函数</td>
				<td>str时间日期字符串  【DateTimeZone对象--指定时区】</td>
				<td>datetime对象游标</td>
			</tr>
			<tr>
				<td>diff</td>
				<td>dateTime对象方法，比较两段时间大小</td>
				<td>dateTime对象</td>
				<td>对象游标</td>
			</tr>
			<tr>
				<td>date_diff</td>
				<td>间接调用dateTime对象的diff函数，其两个参数都是dateTime对象</td>
				<td>dateTime对象  dateTime对象</td>
				<td>对象游标</td>
			</tr>
		</table>
		<li>date_diff返回的对象游标，其days为间隔的天数</li>
	</div>

	<div class="ltable showimg">格式时间返回</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>time</td>
				<td>返回当前时间</td>
				<td>无</td>
				<td>int时间戳</td>
			</tr>
			<tr>
				<td>microtime</td>
				<td>返回当前微秒级时间戳，默认以字符串返回</td>
				<td>布尔=false（以浮点数返回）</td>
				<td>精度8的微秒拼接int时间,或精度4的unix浮点数时间</td>
			</tr>
			<tr>
				<td>mktime</td>
				<td>返回指定时间的时间戳</td>
				<td>【H、i、s、n、j、Y】</td>
				<td>时间戳</td>
			</tr>
			<tr>
				<td>mysql_timestamp</td>
				<td>返回当前Y-m-d H:i:s的格式时间</td>
				<td>无</td>
				<td>格式化时间</td>
			</tr>
		</table>
		<li>n为不带零的月份表示，j为不带零的日期表示</li>
		<li>microtime的无参数默认返回格式是："8位的纯小数 int时间戳"</li>
	</div>
</ul>

<div class="dt">格式化输出</div>
<ul>
	<div class="ltable showimg">格式化输出函数</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>number_format</td>
				<td>以千位分隔符格式化一个数字</td>
				<td>mix数值数据 【精度decimals=0  小数字符dec_point='.' 千位分隔符=','】</td>
				<td>字符串格式数值</td>
			</tr>
			<tr>
				<td>sprintf</td>
				<td>格式化输出字符</td>
				<td>format格式表达式 原数据...</td>
				<td>格式化字符</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">格式说明符</div>
	<div class="img">
		<table>
			<tr>
				<th>符号</th><th>意义和说明</th>
			</tr>
			<tr>
				<td>%</td><td>占位符，其后至少需要一个额外的说明符描述要插入的数据</td>
			</tr>
			<tr>
				<td>$</td><td>位置说明符，"1$"代表该处使用第一个数据</td>
			</tr>
			<tr>
				<td>'</td><td>字符填充符，必须指定宽度和类型规定以什么字符填充某数据至指定长度(最大)</td>
			</tr>
			<tr>
				<td>0</td><td>填充0，追加在%后，意义为左侧填充0，追加在-'0后为右侧填充(但仅在参数作为字符串时才显示)，其他场合为普通字符或数字长度说明</td>
			</tr>
			<tr>
				<td>-</td><td>字符左对齐，填充字符会追加在右侧，追加在%后使用</td>
			</tr>
			<tr>
				<td>+</td><td>在正数前加+号，默认情况只有负数有-号</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">类型说明符</div>
	<div class="img">
		<table>
			<tr>
				<th>符号</th><th>意义和说明</th>
			</tr>
			<tr>
				<td>b</td><td>参数视为整数，并以二进制数表示</td>
			</tr>
			<tr>
				<td>c</td><td>参数视为整数，并以对应的ASCII码显示</td>
			</tr>
			<tr>
				<td>d</td><td>参数视为整数，并以有符号的十进制数表示(正数无+)</td>
			</tr>
			<tr>
				<td>e</td><td>参数视为数字，并以科学计数法表示，前面的数字会视为精度而不是长度，精度默认6(正确使用前面还要一个.号，示范:%.3e，显示为3精度)</td>
			</tr>
			<tr>
				<td>E</td><td>同e，返回的科学计数法e显示为大号</td>
			</tr>
			<tr>
				<td>f</td><td>参数视为数字，并显示为浮点数，精度默认6(示范%.3f，显示为3精度的浮点数)</td>
			</tr>
			<tr>
				<td>F</td><td>参数视为数字，并显示为浮点数，和小f不同的是不支持本地化(根据运行环境设置而不同)</td>
			</tr>
			<tr>
				<td>g</td><td>参数视为数字，并以通用格式展示(浮点数展示为浮点，其他则依据前面的数字长精度展示为贴近的科学计数法、浮点数或整数)</td>
			</tr>
			<tr>
				<td>G</td><td>参数视为数字，并以通用格式展示，浮点数和科学技术法会以对应的大写说明符解析结果</td>
			</tr>
			<tr>
				<td>o</td><td>参数视为数字，并展示为八进制数</td>
			</tr>
			<tr>
				<td>s</td><td>参数视为字符串</td>
			</tr>
			<tr>
				<td>u</td><td>参数视为数字，并以无符号的数字展示，负数会展示为与2^32的和</td>
			</tr>
			<tr>
				<td>x</td><td>参数视为整数，并表示为16进制，英文字母会以小写展示</td>
			</tr>
			<tr>
				<td>X</td><td>参数视为整数，并表示为16进制，英文字母会以大写展示</td>
			</tr>
		</table>
		<li>在表示长度和精度时，除了用整数，也可以用[1-9]的区间表示长度或精度的区间</li>
		<li>类型说明符，字符串和普通数字(各种进制和正负数)为1x(x表示类型说明符)，浮点数和科学计数法表示为.1x</li>
	</div>
</ul>

<div class="dt">字符串函数</div>
<ul>
	<div class="ltable showimg">字符串截取替换类</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>substr</td>
				<td>截取从指定位置起始指定长度的字符，不指定则截取至末尾</td>
				<td>str要处理的字符  start起始位置 【len长度=max】</td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>mb_substr</td>
				<td>按编码截取从指定位置起指定长度的字符，不指定则截取至末尾</td>
				<td>str要处理的字符  start起始位置 【len长度=max  encoding='当前编码'】</td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>strstr</td>
				<td>以指定字符分隔，截取字符串为两段并返回其中一段，给定字符也可以用索引标示(官网说明，实际测试会识别为字串)</td>
				<td>str要处理的字符  mix检索字符 【before_needle返回前段=false】</td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>strtr</td>
				<td>转换指定字符,将from替换为to,如果to长于from，长的部分会被舍弃</td>
				<td>str原字符 from待替换字符 to替换为该字符【以数组标识替换】</td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>str_replace</td>
				<td>子字符串替换，传递第四参数会填充总替换次数，该函数前三参数都可以为数组</td>
				<td>search待替换字符 replace替换字符 subject操作对象 【&count】</td>
				<td>返回执行替换的结果,可以为数组或字符串</td>
			</tr>
			<tr>
				<td>substr_replace</td>
				<td>子字符串替换，将指定位置起指定长度的字符替换为新字符</td>
				<td>mix原对象 replace替换字符 start起始位置 【length长度=max】</td>
				<td>返回执行替换的结果,可以为数组或字符串</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">字符串检索统计类</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>strpos</td>
				<td>查找字符串首次出现的位置，第三参数为负时逆向统计</td>
				<td>str原始字符 need检索字符 offset检索起始位</td>
				<td>int，为索引序列</td>
			</tr>
			<tr>
				<td>strrpos</td>
				<td>查找字符串最后一次出现的位置，检索到offset位置时终止</td>
				<td>str原始字符 need检索字符 offset检索截止位</td>
				<td>int，为索引序列</td>
			</tr>
			<tr>
				<td>substr_count</td>
				<td>统计字串出现的次数，区分大小写</td>
				<td>str初始字符 need检索字符 【offset统计起始索引位置=0 length检索长度=max】</td>
				<td>int，为字符出现次数</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">字符串结构转化和检测</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>str_split</td>
				<td>按长度截取字符串为数组</td>
				<td>str字符串 【length=1长度】</td>
				<td>数组</td>
			</tr>
			<tr>
				<td>ctype_allnum</td>
				<td>检测字符串是否由字母数字组成</td>
				<td>字符串</td>
				<td>布尔值</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">安全字符和过滤</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>addslashes</td>
				<td>转义单双引号和反斜线、Null</td>
				<td>str字符串</td>
				<td>转义特殊字符后的字符串</td>
			</tr>
			<tr>
				<td>stripslashes</td>
				<td>反引用(解除引用)一个引用字符串</td>
				<td>str字符串</td>
				<td>转义字符串转义前的字符</td>
			</tr>
			<tr>
				<td>htmlspecialchars</td>
				<td>将特殊字符转换为HTML实体字符,可以设置转换标准和转换对象(默认仅转化双引号)</td>
				<td>str字符串 【flag=ENT_COMPAT|ENT_HTML401】</td>
				<td>字符串，ENT_QUOTES会转换单双引号</td>
			</tr>
			<tr>
				<td>htmlspecialchars_decode</td>
				<td>htmlspecialchars反函数</td>
				<td>str字符串 【flag=ENT_COMPAT|ENT_HTML401】</td>
				<td>字符串，ENT_QUOTES会转换单双引号</td>
			</tr>
			<tr>
				<td>htmlentities</td>
				<td>将html文本字符转化为对应的html实体编码字符</td>
				<td>str字符串 【flag=ENT_COMPAT|ENT_HTML401】</td>
				<td>字符串号</td>
			</tr>
			<tr>
				<td>html_entity_decode</td>
				<td>htmlentities反函数，将html实体字符转化为对应的文本字符</td>
				<td>str字符串 【flag=ENT_COMPAT|ENT_HTML401】</td>
				<td>字符串号</td>
			</tr>
			<tr>
				<td>trim</td>
				<td>去除字符左右的特殊字符，默认包含空格换行空字节制表垂直制表符</td>
				<td>str原始字符 【character=" \n\r\0\t\x0B"】 </td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>rtrim</td>
				<td>right,同trim但仅去除右边字符</td>
				<td>str原始字符 【character=" \n\r\0\t\x0B"】 </td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>ltrim</td>
				<td>left,同trim但仅去除左边字符</td>
				<td>str原始字符 【character=" \n\r\0\t\x0B"】 </td>
				<td>字符串</td>
			</tr>
		</table>
		<li>addslaches主要用来转义插入数据库的数据，其使用和php.ini的magic_quotes_gpc设置，当On时，系统自动转义用户端提交过来的数据，这时候可以不使用该函数，如果是off时，为了安全一般必须过滤，而双层转义会使数据产生变化，这时候stripslashes就上场了</li>
	</div>

	<div class="ltable showimg">http参数处理</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>parse_url</td>
				<td>解析url，返回其组成部分(一般包含host、query、path)</td>
				<td>url 【component=-1|PHP_URL_QUERY】</td>
				<td>默认返回数组，也可以依据第二参数返回其他部分</td>
			</tr>
			<tr>
				<td>parse_str</td>
				<td>将字符串解析成多个变量或者存储到传入的变量中</td>
				<td>str字符串 【&变量】</td>
				<td>无返回值</td>
			</tr>
			<tr>
				<td>urlencode</td>
				<td>将字符编码为合法url字符</td>
				<td>str字符</td>
				<td>url字符</td>
			</tr>
			<tr>
				<td>urldecode</td>
				<td>解码url字符</td>
				<td>url字符</td>
				<td>str字符</td>
			</tr>
			<tr>
				<td>http_build_query</td>
				<td>将数组转化为url参数字符，使用urlencode编码</td>
				<td>arr数组 【数字key前缀=''  参数分隔符='&' enc_type编码方式】</td>
				<td>合法的url参数字符</td>
			</tr>
		</table>
		<li>urlencode的主要目的是让传递的参数容易被http协议解析地址的程式被理解，最常用的是编码中文和地址中含地址的url</li>
	</div>

	<div class="ltable showimg">格式化输出</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>parse_url</td>
				<td>解析url，返回其组成部分</td>
				<td>url 【component=-1|PHP_URL_QUERY】</td>
				<td>默认返回数组，也可以依据第二参数返回其他部分</td>
			</tr>
		</table>
		<li>urlencode的主要目的是让传递的参数容易被http协议解析地址的程式被理解，最常用的是编码中文和地址中含地址的url</li>
	</div>

	<div class="ltable showimg">其他字符串函数</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>strrev</td><td>字符串反转</td><td>str字符串</td><td>反转后的字符串</td>
			</tr>
			<tr>
				<td>str_repeat</td><td>重复字符串</td><td>str字符串 int重复次数</td><td>新字符</td>
			</tr>
			<tr>
				<td>strtolower</td><td>转化字符串为小写</td><td>str字符串</td><td>str小写字符串</td>
			</tr>
			<tr>
				<td>strtoupper</td><td>转化字符串为大写</td><td>str字符串</td><td>str大写字符串</td>
			</tr>
		</table>
	</div>
</ul>

<div class="dt">数组函数</div>
<ul>
	<div class="ltable showimg">结构处理类</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>array_slice</td>
				<td>从数组中取出从某个索引位置起始指定个元素组成新的数组</td>
				<td>arr原数组 offset漂移量 【length=max长度 flag是否保留key=false】</td>
				<td>数组(即使只有1个元素),不改变原数组</td>
			</tr>
			<tr>
				<td>extract</td>
				<td>以数组key为变量名，value为变量值声明一组变量</td>
				<td>arr数组 【flag=EXTR_OVERWRITE|EXTR_SKIP】</td>
				<td>无返回值</td>
			</tr>
			<tr>
				<td>compact</td>
				<td>在当前符号表中查找变量以其名为key值为value拼接为一个数组</td>
				<td>str变量名 【str变量名】</td>
				<td>数组</td>
			</tr>
			<tr>
				<td>array_change_key_case</td>
				<td>改变数组键名的大小写</td>
				<td>arr数组 【case=CASE_LOWER】</td>
				<td>返回改变键后的数组</td>
			</tr>
			<tr>
				<td>array_filter</td>
				<td>过滤数组中的单元，默认会过滤所有等值false的元素</td>
				<td>arr数组 callback回调  【flag=ARRAY_FILTER_USE_KEY】</td>
				<td>返回过滤后的数组</td>
			</tr>
		</table>
		<li>array_slice保留原key只对索引数组(非默认排序也可)有效，关联数组无效，和字符串一样，索引位置起始是0，-1为倒序起始</li>
		<li>array_filter使用回调时，回调函数返回一个布尔值，回调函数返回的值是false则会舍弃该元素，当flag为ARRAY_FILTER_USE_BOTH时，回调函数的参数为value、key</li>
	</div>

	<div class="ltable showimg">键值操作类</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>array_rand</td>
				<td>从数组中取随机的N个key</td>
				<td>arr数组 int个数</td>
				<td>1个时为key名，多个为索引数组</td>
			</tr>
			<tr>
				<td>array_column</td>
				<td>从多维数组中取出指定列的值以指定列为索引生成新数组</td>
				<td>原数组 field 【做为key的键】</td>
				<td>新数组</td>
			</tr>
			<tr>
				<td>array_slice</td>
				<td>从数组中取出从某个索引位置起始指定个元素组成新的数组</td>
				<td>arr原数组 offset漂移量 【length=max长度 flag是否保留key=false】</td>
				<td>数组(即使只有1个元素),不改变原数组</td>
			</tr>
			<tr>
				<td>array_map</td>
				<td>遍历数组的每个值传入回调函数进行处理</td>
				<td>callback回调 数组... </td>
				<td>返回处理后的数组，原数组不会改变</td>
			</tr>
			<tr>
				<td>array_walk</td>
				<td>遍历数组的每个值传入回调函数进行处理,数组的value、key和额外的userData会传入回调</td>
				<td>数组 callback回调 【userData额外数据】</td>
				<td>返回处理结果的布尔值，组合引用传参可以更改原数组</td>
			</tr>
		</table>
		<li>array_column第二参数可以为单个的属性名、字段名，也可以为索引数组的列索引,此时为取出单列，为null时取出所有列，第三参数除了不能为null外可以取第二参数的其他可能值</li>
		<li>array_rand函数在数组中没有要取出个数的值时，会抛出错误而不是全部取出</li>
		<li>array_map，如果传入单个数组不会改变key，传入多个数组，键（key）是整型数字的序列，而值是所有数组同序列值的数组，如果不同数组元素个数不一致，在预处理之前会填充null </li>
	</div>

	<div class="ltable showimg">检索统计类</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>in_array</td>
				<td>检索数组中是否存在某个值</td>
				<td>need检索的值  arr数组  【strict=false是否严格检测】</td>
				<td>存在返回其key，否则返回false</td>
			</tr>
			<tr>
				<td>array_search</td>
				<td>检索数组中是否存在某个值</td>
				<td>need检索的值  arr数组  【strict=false是否严格检测】</td>
				<td>存在返回其key，否则返回false</td>
			</tr>
			<tr>
				<td>array_key_exists</td>
				<td>检索数组中是否存在某个key(以非严格模式)</td>
				<td>str检索的key  arr数组</td>
				<td>布尔值</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">栈式操作和指针操作</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>array_push</td>
				<td>尾部入栈</td>
				<td>&arr数组 mix值...</td>
				<td>返回改变后的元素个数</td>
			</tr>
			<tr>
				<td>array_unshift</td>
				<td>头部入栈</td>
				<td>&arr数组 mix值...</td>
				<td>返回改变后的元素个数</td>
			</tr>
			<tr>
				<td>array_pop</td>
				<td>尾部出栈</td>
				<td>&arr数组 mix值</td>
				<td>返回删除的元素</td>
			</tr>
			<tr>
				<td>array_shift</td>
				<td>头部入栈</td>
				<td>&arr数组 mix值</td>
				<td>返回删除的元素</td>
			</tr>
			<tr>
				<td>current</td>
				<td>返回当前指针指向的元素的值(不会移动指针)</td>
				<td>arr数组</td>
				<td>成功返回数组一个值，失败返回false</td>
			</tr>
			<tr>
				<td>next</td>
				<td>指针向前移动一位，并返回指向的值</td>
				<td>arr数组</td>
				<td>成功返回数组一个值，失败返回false</td>
			</tr>
			<tr>
				<td>prev</td>
				<td>指针后退一位，并返回指向的值</td>
				<td>arr数组</td>
				<td>成功返回数组一个值，失败返回false</td>
			</tr>
			<tr>
				<td>end</td>
				<td>指针移动到末尾，并返回指向的值</td>
				<td>arr数组</td>
				<td>成功返回数组一个值，数组为空返回false</td>
			</tr>
			<tr>
				<td>reset</td>
				<td>指针移动到头部，并返回指向的值</td>
				<td>arr数组</td>
				<td>成功返回数组一个值，数组为空返回false</td>
			</tr>
			<tr>
				<td>each</td>
				<td>返回当前指针指向的元素的key和值并向前移动指针一位</td>
				<td>arr数组</td>
				<td>混合数组,0和key指向元素key,1和value指向value</td>
			</tr>
		</table>
		<li>栈式操作改变原数组，入栈返回改变后的元素个数，出栈返回删除的元素</li>
		<li>指针操作总是返回操作后指针指向的值，each除外</li>
	</div>

	<div class="ltable showimg">数组排序函数</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>sort</td>
				<td>按value顺序排序</td>
				<td>数组 【flag=SORT_REGULAR排序方式】</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>ksort</td>
				<td>按key顺序排序 【flag=SORT_REGULAR排序方式】</td>
				<td>数组</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>krsort</td>
				<td>按key倒序排序</td>
				<td>数组 【flag=SORT_REGULAR排序方式】</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>asort</td>
				<td>按value顺序排序并保留原key</td>
				<td>数组 【flag=SORT_REGULAR排序方式】</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>arsort</td>
				<td>按value倒序排序并保留原key</td>
				<td>数组 【flag=SORT_REGULAR排序方式】</td>
				<td>布尔值</td>
			</tr>
		</table>
		<li>数组排序函数改变原值返回是否成功的布尔值，排序时默认忽略key重置为索引数组，默认逐字母按比较运算符比较</li>
		<li>排序大小比较方式除了SORT_REGULAR，还有SORT_NUMERIC、SORT_NATURAL、SORT_STRING等</li>
	</div>

	<div class="ltable showimg">特殊类</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>list</td>
				<td>将数组的值赋予给一组变量,7.1版本之前只用于数字索引数组</td>
				<td>变量 【变量】</td>
				<td>返回原数组(无意义但确实是这样)，参数变量会逐一接收数组的值</td>
			</tr>
			<tr>
				<td>foreach</td>
				<td>遍历数组</td>
				<td>非函数式纯语法结构，无参数</td>
				<td>无返回</td>
			</tr>
		</table>
		<li>list常和each配合使用达到foreach遍历数组的目的，严格来说list和foreach都不是函数，此外list只能用于数组，foreach可用于对象和实施了Iterator迭代器的对象</li>
	</div>

</ul>

<div class="dt">文件目录函数</div>
<ul>
	<div class="ltable showimg">文件元信息</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>filesize</td>
				<td>返回文件的字节大小</td>
				<td>str路径</td>
				<td>int，失败返回false</td>
			</tr>
			<tr>
				<td>filetype</td>
				<td>返回文件的类型(linux系统标准类型)</td>
				<td>str路径</td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>filectime</td>
				<td>返回文件的创建时间，以时间戳形式</td>
				<td>str路径</td>
				<td>int时间戳</td>
			</tr>
			<tr>
				<td>filemtime</td>
				<td>返回文件的修改时间，以时间戳形式</td>
				<td>str路径</td>
				<td>int时间戳</td>
			</tr>
			<tr>
				<td>fileatime</td>
				<td>返回文件的最近访问时间，以时间戳形式</td>
				<td>str路径</td>
				<td>int时间戳</td>
			</tr>
			<tr>
				<td>touch</td>
				<td>修改文件的访问和修改时间</td>
				<td>str路径 【mtime=time() atime=time()】</td>
				<td>成功与否的布尔值</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">文件操作</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>file_exists</td>
				<td>判断文件或目录是否存在</td>
				<td>str路径</td>
				<td>布尔值</td>
			</tr>

		</table>
	</div>
	<div class="ltable showimg">目录操作</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>chdir</td>
				<td>改变当前工作目录</td>
				<td>str目录地址</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>file_exists</td>
				<td>判断文件或目录是否存在</td>
				<td>str路径</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>mkdir</td>
				<td>新建目录</td>
				<td>路径 【权限掩码='0777'  recursivet递归=false】</td>
				<td>布尔值</td>
			</tr>

		</table>	
	</div>
	<div class="ltable showimg">文件内容操作</div>
	<div class="img">
		<tr>
			<td>file</td>
			<td>把整个文件读入一个数组，每一行为一个元素</td>
			<td>str路径</td>
			<td>数组或false</td>
		</tr>

	</div>
	<div class="ltable showimg">文件定位和文件目录遍历</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>glob</td><td>定位文件、目录，可以使用通配符查找</td><td>str文件路径</td><td>索引数组</td>
			</tr>
		</table>
	</div>
</ul>

<div class="dt">缓存函数</div>
<ul>
	<div class="ltable showimg">apc系列缓存</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>apc_add</td>
				<td>仅在缓存不存在时，缓存一条数据，也可以使用数组缓存一组数据</td>
				<td>str缓存名 mix缓存值 【int有效期=o】</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>apc_store</td>
				<td>缓存一条数据，也可以使用数组缓存一组数据(会覆盖之前的缓存)</td>
				<td>str缓存名 mix缓存值 【int有效期=o】</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>apc_fetch</td>
				<td></td>
			</tr>
		</table>
	</div>
</ul>

<div class="dt">其他函数</div>
<ul>
	<div class="ltable showimg">header函数</div>
	<div class="img">
		<table>
			<tr>
				<th>http头类型</th><th>参数</th><th>说明</th>
			</tr>
			<tr>
				<td>发送跳转指令</td>
				<td>location:地址</td>
				<td>该指令发送后，后面的输出不会到达客户端，但后续代码仍然执行</td>
			</tr>
			<tr>
				<td>Content-type: 类型</td>
				<td>告知客户端将要传输的数据类型</td>
				<td>具体的类型和Content-type的值可以在w3c查找到对应，其中html为text/html，json为application/json(未证实有效)</td>
			</tr>
			<tr>
				<td>告知客户端将要传输的文本数据编码</td>
				<td>charset=编码</td>
				<td>该报文为附加http头，通常附加在Content-type后以';'分隔</td>
			</tr>
			<tr>
				<td>header访问控制</td>
				<td>Access-Control-Allow-Origin:域名(可使用通配符)</td>
				<td>该header用来设置允许访问的来源域名(默认仅本域名)，这是对服务器有效的header头，但也会发送到客户端</td>
			</tr>
			<tr>
				<td>设置允许的http请求方式</td>
				<td>Access-Control-Allow-Methods: 【POST,GET,*】</td>
				<td>该header用来设置允许的请求方式(默认为所有方式)</td>
			</tr>
			<tr>
				<td>设置允许接受的客户端发送的header头</td>
				<td>Access-Control-Allow-Headers: 【Origin, X-Requested-With, Content-Type, Accept等】</td>
				<td>该header用来设置接受的客户端header头，默认所有</td>
			</tr>
		</table>
		<li>header函数是用来发送原生的http头的函数，可以接受三个参数，第二参数指定是否覆盖前面相同类型的头，第三参数能设置http响应码</li>
	</div>

	<div class="ltable showimg">输出缓冲控制</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>ob_start</td><td>开启缓冲控制</td><td>无</td><td>布尔值</td>
			</tr>
			<tr>
				<td>ob_get_flush</td><td>刷出缓冲区内容并以字符串返回，也会清空缓冲区，失败返回false</td><td>无</td><td>字符串或false</td>
			</tr>
			<tr>
				<td>ob_end_flush</td><td>直接输出缓冲区内容并销毁缓冲区，失败抛出notice</td><td>无</td><td>无</td>
			</tr>
			<tr>
				<td>ob_flush</td><td>输入并清空缓冲区内容，但不会销毁缓冲区</td><td>无</td><td>无</td>
			</tr>
			<tr>
				<td>ob_end_clean</td><td>销毁缓冲区和其内容</td><td>无</td><td>无</td>
			</tr>
			<tr>
				<td>ob_clean</td><td>清除缓冲区内容</td><td>无</td><td>无</td>
			</tr>
			<tr>
				<td>ob_get_content</td><td>获取缓冲区内容</td><td>无</td><td>字符串</td>
			</tr>
		</table>
		<li>开启缓冲控制会将输出数据放到内部缓冲区中而不是按既有规则提交到web服务器，便于再次管理(不过它主要被用来调试)</li>
		<li>ob系列函数制造的缓冲区也可以嵌套，并可使用ob_get_level获取当前嵌套等级，不过这种功能几乎不会被使用</li>
	</div>

	<div class="ltable showimg">php系统配置读取</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>ini_get</td>
				<td>获取php配置项的值，配置值一般都是字符，on和off做布尔看待</td>
				<td>str配置名</td>
				<td>字符串或布尔值</td>
			</tr>
			<tr>
				<td>ini_set</td>
				<td>设置php某配置的值</td>
				<td>str配置名 str配置值</td>
				<td>布尔值</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">php编码函数</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>mb_convert_encoding</td>
				<td>转换字符的编码</td>
				<td>str原字符  to编码  【from原编码=mb_internal_encoding()】</td>
				<td>新编码字符</td>
			</tr>
			<tr>
				<td>mb_internal_encoding</td>
				<td>设置、获取内部字符编码</td>
				<td>【str编码】</td>
				<td>布尔值、字符编码</td>
			</tr>
			<tr>
				<td>mb_detect_encoding</td>
				<td>检测字符编码</td>
				<td>str字符 【可选字符编码=mb_detect_order()  strict严格=false】</td>
				<td>字符编码或false</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">加密解密</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>参数</th><th>作用</th><th>返回值</th>
			</tr>
			<tr>
				<td>password_hash</td>
				<td>str待加密字符  【算法=PASSWORD_DEFAULT  option=[]】</td>
				<td>使用哈希算法对字符加密运算，默认使用bcrypt算法</td>
				<td>字符串或失败时返回false</td>
			</tr>
			<tr>
				<td>password_verify</td>
				<td>str原字符  str哈希值</td>
				<td>验证哈希值和原字符是否匹配</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>md5</td>
				<td>计算字符串的md5散列值</td>
				<td>str原字符 【以二进制返回=false】</td>
				<td>32字符十六进制数字(或其16字节二进制表示)</td>
			</tr>
			<tr>
				<td>sha1</td>
				<td>计算字符串的sha1散列值</td>
				<td>str原字符 【raw_output以十六进制返回=false】</td>
				<td>字符串(或其40 字符的十六进制数字)</td>
			</tr>
			<tr>
				<td>crypt</td>
				<td>计算字符串的UNIX DES算法或系统上其他可用的替代算法的散列值</td>
				<td>str原字符串 【salt盐值】</td>
				<td>字符串的散列值</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">函数相关</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>参数</th><th>作用</th><th>返回值</th>
			</tr>
			<tr>
				<td>function_exists</td>
				<td>str函数名</td>
				<td>判断函数是否存在</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>func_get_args</td>
				<td>无</td>
				<td>在函数内使用，获取传入函数的实际参数列表</td>
				<td>数组</td>
			</tr>
			<tr>
				<td>func_num_args</td>
				<td>无</td>
				<td>在函数内部使用，获取传入函数的参数数目</td>
				<td>int</td>
			</tr>
			<tr>
				<td>call_user_func</td>
				<td>func 【param...】</td>
				<td>调用指定函数，并以多参数传递参数</td>
				<td>返回被调用函数的返回值</td>
			</tr>
			<tr>
				<td>call_user_func_array</td>
				<td>func arr参数</td>
				<td>调用指定函数，并以数组形式指定参数</td>
				<td>返回被调用函数的返回值</td>
			</tr>
			<tr>
				<td>forward_static_call</td>
				<td>func 【param...】</td>
				<td>调用指定函数或方法，并以多参数形式传递参数</td>
				<td>返回被调用函数的返回值，调用函数错误返回false</td>
			</tr>
			<tr>
				<td>forward_static_call_array</td>
				<td>func arr参数</td>
				<td>调用指定函数或方法，并以数组形式传递参数</td>
				<td>返回被调用函数的返回值，调用函数错误返回false</td>
			</tr>
		</table>
	</div>

</ul>

</body>
</html>